Skip to main content

Versi 1

FieldIsi
Dokumen IDVBS-MST-004
DeskripsiMaster satuan: mengelola nama satuan barang (pcs, lusin, kg, dan lain-lain) yang dipakai sebagai satuan terkecil, satuan beli, satuan jual, dan konversi barang
Nomor Revisi1
Tanggal2026-10-04
KeteranganDokumentasi baseline dari dokumentasi fitur demo dan kode FE

1. Ringkasan​

a. In scope​

  • User dapat melihat daftar satuan milik brand
  • User dapat mencari satuan berdasarkan nama
  • User dapat menambah lebih dari satu satuan sekaligus dalam satu form
  • Sistem menolak nama satuan yang sudah ada
  • User dapat melihat dan mengubah nama satuan
  • User dapat menghapus satuan (dipindah ke arsip) dan memulihkan satuan dari arsip
  • Satuan bawaan sistem yang terkunci tidak dapat dihapus

b. Catatan​

c. Kesimpulan​

  • [FE] -
  • [BE] -

2. Functional Requirement​

KodeDeskripsi
FR-01Sistem menampilkan daftar satuan aktif dengan infinite scroll
FR-02User dapat mencari satuan berdasarkan nama satuan
FR-03User dapat menambah satu atau banyak satuan sekaligus
FR-04Sistem memvalidasi nama satuan wajib diisi dan belum pernah ada
FR-05User dapat melihat detail dan mengubah nama satuan melalui modal
FR-06User dapat menghapus satuan yang tidak terkunci
FR-07User dapat memulihkan satuan dari arsip secara massal
FR-08Akses tambah/ubah/hapus, lihat, dan arsip dibatasi hak akses menu satuan

3. Use Case List​

KodeDeskripsi
UC-01Melihat daftar satuan
UC-02Mencari satuan berdasarkan nama
UC-03Menambah banyak satuan sekaligus
UC-04Melihat dan mengubah satuan
UC-05Menghapus satuan
UC-06Memulihkan satuan dari arsip

4. Use Case Scenario​

UC-01 : Melihat daftar satuan​

AktorUser brand
DeskripsiUser melihat daftar satuan aktif
PrekondisiUser sudah login
Brand aktif terpilih
Alur utama1. User membuka menu Master, Barang, Satuan.
2. Sistem menampilkan daftar nama satuan 30 baris per halaman.
3. User menggulir untuk memuat berikutnya.
Alur negatif- Jika gagal memuat, daftar kosong dengan teks "Satuan is Empty".
Bisnis rule- Tombol Tambah Baru dan hapus hanya tampil untuk hak basic.
- Tombol Arsip hanya tampil untuk hak archive.
PostkondisiDaftar satuan tampil
TriggerUser membuka menu Satuan
Kode FRFR-01
FR-08

UC-02 : Mencari satuan berdasarkan nama​

AktorUser brand
DeskripsiUser mencari satuan tertentu
PrekondisiUser berada di daftar satuan
Alur utama1. User mengetik nama pada kolom "Cari Nama Satuan...".
2. Sistem memuat satuan yang cocok mulai halaman pertama.
Alur negatif- Jika kata kunci dikosongkan, sistem memuat ulang daftar penuh.
- Jika tidak ada hasil, daftar kosong.
Bisnis rule-
PostkondisiDaftar satuan tersaring
TriggerUser mengubah kolom pencarian
Kode FRFR-02

UC-03 : Menambah banyak satuan sekaligus​

AktorUser brand dengan hak basic
DeskripsiUser menambah satu atau lebih satuan dalam satu kali simpan
PrekondisiUser sudah login
Alur utama1. User klik Tambah Baru.
2. User mengisi nama satuan.
3. User klik tombol plus untuk menambah baris satuan lain.
4. User klik Simpan.
5. Sistem menyimpan semua satuan dan menampilkan "Berhasil buat satuan".
Alur negatif- Jika nama kosong, muncul "Satuan harus di isi".
- Jika nama sudah terdaftar, muncul "Satuan ini sudah ada".
- Jika simpan gagal, muncul pesan error dari server dan kembali ke daftar.
Bisnis rule- Pengecekan duplikat dilakukan per baris ke server saat mengetik.
- Form selalu mengirim nama satuan dalam bentuk daftar sehingga disimpan lewat jalur bulk.
PostkondisiSatuan baru tersimpan
TriggerUser klik Simpan
Kode FRFR-03
FR-04

UC-04 : Melihat dan mengubah satuan​

AktorUser brand dengan hak view / basic
DeskripsiUser membuka detail satuan lalu mengubah namanya
PrekondisiSatuan ada di daftar
Alur utama1. User klik sekali baris satuan untuk melihat detail, atau klik dua kali untuk langsung mode ubah.
2. Sistem memuat detail satuan pada modal.
3. User mengubah nama satuan dan klik Simpan.
4. Sistem memperbarui satuan dan menampilkan "Berhasil ganti satuan".
Alur negatif- Jika user tidak punya hak view dan basic, klik baris tidak melakukan apa pun.
- Jika nama kosong, form tidak dapat disimpan.
- Jika gagal memuat detail atau menyimpan, muncul pesan error dari server.
Bisnis rule- Mode ubah (klik ganda) memerlukan hak basic.
PostkondisiNama satuan terbarui
TriggerUser klik baris satuan
Kode FRFR-05
FR-08

UC-05 : Menghapus satuan​

AktorUser brand dengan hak basic
DeskripsiUser menghapus satuan yang tidak dipakai
PrekondisiSatuan tidak berstatus terkunci
Alur utama1. User klik ikon hapus pada baris.
2. Sistem meminta konfirmasi "Anda yakin ingin menghapus (nama satuan)?".
3. User klik "Ya, Hapus!".
4. Sistem menghapus satuan dari daftar dan menampilkan "Berhasil hapus satuan".
Alur negatif- Jika user klik Batal, tidak ada perubahan.
- Jika server menolak (mis. satuan masih dipakai), muncul pesan error dari server.
Bisnis rule- Satuan dengan status locked tidak menampilkan tombol hapus.
- Satuan yang dihapus muncul di halaman arsip (status tidak aktif).
PostkondisiSatuan tidak tampil di daftar aktif
TriggerUser klik hapus
Kode FRFR-06

UC-06 : Memulihkan satuan dari arsip​

AktorUser brand dengan hak archive
DeskripsiUser mengaktifkan kembali satuan yang sudah diarsipkan
PrekondisiAda satuan tidak aktif
Alur utama1. User klik Arsip.
2. Sistem menampilkan satuan tidak aktif.
3. User mencentang satu, beberapa, atau semua satuan.
4. User klik pulihkan dan konfirmasi "Ya, pulihkan!".
5. Sistem mengaktifkan kembali dan menampilkan "Berhasil memulihkan Satuan terpilih".
Alur negatif- Jika gagal, muncul pesan error dari server dan data tetap di arsip.
Bisnis rule- Pemulihan dilakukan massal dengan mengubah status menjadi aktif.
PostkondisiSatuan kembali tampil di daftar aktif
TriggerUser klik pulihkan di halaman arsip
Kode FRFR-07
FR-08

5. Data Flow Diagram​

DFD-01​

6. Sequence Diagram​

SD-01 — UC-01 : Melihat daftar satuan​

SD-02 — UC-02 : Mencari satuan berdasarkan nama​

SD-03 — UC-03 : Menambah banyak satuan sekaligus​

SD-04 — UC-04 : Melihat dan mengubah satuan​

SD-05 — UC-05 : Menghapus satuan​

SD-06 — UC-06 : Memulihkan satuan dari arsip​

7. Table Schema​

8. API Schema​

EndpointStatusPerubahan
GET /satuanexisting-
GET /satuan/:idexisting-
GET /satuan/check-exist/:namaexisting-
POST /satuan/bulkexisting-
PUT /satuan/:idexisting-
DELETE /satuan/:idexisting-
POST /satuan/bulk-updateexisting-